It is known that networks (such as packet-switched networks) experience changes in bandwidth that can affect user experience. This is most notable in cases where a user is streaming media content (such as movies, television programming, etc.) over a network, such as 3G/4G and lossy WiFi networks. These bandwidth changes often exhibit an “oscillating” pattern—i.e., increasing and decreasing in a roughly repetitive rather than a random pattern. Such networks may be referred to, in general, as “oscillating networks,” even though they do not experience simple sinusoidal oscillations of bandwidth.
Currently known methods for estimating bandwidth in oscillating networks involve utilizing sliding widow averages—i.e., looking at the number of bits received within a predetermined window of time (e.g., about 10 seconds) and using the average value of the bandwidth within that predetermined time to predict future bandwidth. Unfortunately, oscillating networks may vary over an interval that is significantly larger than the length of the first window, for example, over 15 or 30 second intervals. As a result, the bandwidth estimation may not accurately predict the actual future bandwidth experienced during streaming. For example, if the system is approaching a peak, it might select a bit rate for the peak. On the other hand, the system may be on a decline towards the next oscillation. In such a case the system may begin downloading something and then begin to stall, resulting in a poor user experience. Such simple single-window algorithms are best for stable rather than oscillating networks.
Accordingly, there is a need for improved methods of estimating bandwidth in oscillating networks. These and other desirable features and characteristics will become apparent from the subsequent detailed description and the claims, taken in conjunction with the accompanying drawings and this background section.